热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

技术分享|静态扫描体系集成

FindBugs是一个Java项目的静态代码扫描工具,它支持的项目类型包括Maven,Grade,Ant等,可以在不运行程序

FindBugs 是一个 Java 项目的静态代码扫描工具,它支持的项目类型包括 Maven,Grade,Ant等,可以在不运行程序的前提下对软件进行潜在 Bug 的分析,帮助团队在程序运行之前就最大程度发现隐藏较深的问题,提示的内容包含真正的权限和潜在可能发生的错误问题;可以把它与持续集成工具 Jenkins 进行集成,这样就能在代码提交后自动对提交的代码进行静态扫描,找出潜在的代码问题。


环境准备

Jenkins 服务

运行 FindBugs 单元测试的节点机器

部署 Java + Maven

Jenkins 上已安装了 Warnings Next Generation 插件

FindBugs 单元测试项目: https://gitee.com/ceshiren/iWeb.git


项目的配置

在 Maven 项目的配置 pom.xml 文件中需要把 findbugs-maven-plugin 工具配置上。

图片

在 jenkins 中建立一个自由风格的项目。

在这里插入图片描述

配置好运行的节点机器,此机器是环境准备中的节点机器。

在这里插入图片描述

配置代码源,将被测项目代码的 git 地址配置到此处。

在这里插入图片描述

在构建(Build)中点击增加构建步骤(Add build step),构建步骤中选择执行 shell(Execute shell)。

在这里插入图片描述

在构建后步骤(Post-build Actions),选择 Record compiler warnings and static analysis results。

在这里插入图片描述

在静态工具中选择 FindBugs 在 Report File Pattern 配置上 **/findbugsXml.xml。

在这里插入图片描述


执行job

点击执行后,job 将会拉取代码进行静态扫描操作,执行完成之后在 job 的首页左下部分有一个 FindBugs Warnings的按钮。

在这里插入图片描述

点击此按钮后能展示出来FindBugs找到的问题信息。

在这里插入图片描述

点击每一条问题信息左边的加号都能进入到具体哪行代码报出了问题,出问题的具体信息,就能根据提示的信息去分析可能的出错,与开发人员进行沟通解决;多次构建操作后就能看到趋势图的展示。

在这里插入图片描述

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!


在这里插入图片描述


在这里插入图片描述


推荐阅读
  • Jenkins实例 Maven项目
    目录一.准备二.创建项目创建maven项目源码管理部分构建编译PostSteps打包构建后操作三.测试一.准备先看初始化设置,如果做完初始化,则跳过安装如下插件MavenInteg ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 关于ScrumXPDevOps的学习
    最近听了ECUG大会上孙敬云老师的分享感觉受益匪浅,毕竟大学课本上只讲到瀑布模型就没有下文了,工作以后一直贯彻的都是Scrum路线,一直也没有时间好好的去学习整理这部分的知识,直到 ... [详细]
  • 本文介绍了 Java 中 io.netty.channel.kqueue.KQueueStaticallyReferencedJniMethods.evfiltSock() 方法的使用及其代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • JVM钩子函数的应用场景详解
    本文详细介绍了JVM钩子函数的多种应用场景,包括正常关闭、异常关闭和强制关闭。通过具体示例和代码演示,帮助读者更好地理解和应用这一机制。适合对Java编程和JVM有一定基础的开发者阅读。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文介绍了Java中的com.sun.codemodel.JBlock._continue()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 无论你是刚毕业的大学生,还是想在职业中寻求进步的经验丰富的IT专家,这些提示都可以帮你成为DevOps工程师。DevOps工程是一个备受称赞的热门职业。不管你是刚毕业正在找第一份工 ... [详细]
author-avatar
白日星445533
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有